A relatively large number of events may take place during the running of a computer program. For example, consider a video streaming application. Some of the events that may occur during a video streaming application may be related to video streaming actions, such as buffer, play, pause, stop, play (resumed) and so forth. Other types of events in the same program may be related to user navigation actions, such as interaction to change menu pages to locate video content to play, to modify settings, and so forth. Others may be system-level events.
Events may serve as sources of data that are valuable to program developers, testers, debuggers, services and so forth. These persons or services are interested in program events for testing, debugging, analytics, program improvements, hardware improvements and so on. Making such events available in a useful way is a challenge, given the large number of events and the diverse types of events.